package com.yidu.hbatsft.service.impl;

import com.github.pagehelper.PageHelper;
import com.yidu.hbatsft.dao.AtsPlanYearMoreMapper;
import com.yidu.hbatsft.domain.*;
import com.yidu.hbatsft.service.AtsPlanItemService;
import com.yidu.hbatsft.service.AtsPlanYearMoreService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

/**
 * 3.1多年年度计划实现类
 * @author 龙兴
 * @time 2019年10月31日09:54:20
 */
@Service
public class AtsPlanYearMoreImpl implements AtsPlanYearMoreService {

    @Resource
    AtsPlanYearMoreMapper atsPlanYearMoreMapper;

    @Resource
    AtsPlanItemService atsPlanItemService;//指标

    @Override
    public List<AtsPlanYearMore> selectAll(Integer pageNum, Integer pageSize,AtsPlandimSearch atsPlandimSearch) {
        //开始处和数目
        PageHelper.offsetPage(pageNum,pageSize);
        //开始的页数和数目
        PageHelper.startPage(pageNum,pageSize);
        return atsPlanYearMoreMapper.selectAll(atsPlandimSearch);
    }

    @Override
    public int insertSelective(AtsPlanYearMore atsPlanYearMore, AtsPlanItem atsPlanItem) {

        Integer temp = atsPlanYearMoreMapper.insertSelective(atsPlanYearMore);

        String pid = atsPlanYearMore.getPid().toString();//获取到自增长返回出来的ID

        if (atsPlanItem.getItemName() != null && !"".equals(atsPlanItem.getItemName())){
             String itemNameTemp[] = atsPlanItem.getItemName().split(",");
             String itemValueTemp[] = atsPlanItem.getItemValue().split(",");
             for (int i = 0; i < itemNameTemp.length; i++) {
                 String itemName = itemNameTemp[i];
                 String itemValue = itemValueTemp[i];
                 AtsPlanItem atsPlanItems = new AtsPlanItem();
                 atsPlanItems.setItemName(itemName);
                 atsPlanItems.setItemValue(itemValue);
                 atsPlanItems.setPid(pid);
                 atsPlanItems.setPlandate("1");//设置1 就是这一次指标
                 atsPlanItems.setRemark("1");//用备注区分表
                 atsPlanItems.setCreater("sb");//设置创建人
                 atsPlanItems.setCreatTime(new Date());//设置创建时间
                 atsPlanItems.setPname(atsPlanYearMore.getPname());//设置pname
                 atsPlanItems.setIsva(1);//设置是否有效
                 atsPlanItemService.insertSelective(atsPlanItems);
             }
        }

        return temp;
    }

    @Override
    public Integer count(AtsPlandimSearch atsPlandimSearch) {
        return atsPlanYearMoreMapper.count(atsPlandimSearch);
    }

    @Override
    public AtsPlanYearMore selectByPrimaryKey(Integer pid) {
        return atsPlanYearMoreMapper.selectByPrimaryKey(pid);
    }

    @Override
    public int updateByPrimaryKeySelective(AtsPlanYearMore atsPlanYearMore,AtsPlanItem atsPlanItem ,String itemIdArry) {

        Integer temp = atsPlanYearMoreMapper.updateByPrimaryKeySelective(atsPlanYearMore);

        if (itemIdArry != null && !"".equals(itemIdArry)){
            String itemIdArryTemp[] = itemIdArry.split(",");//指标id的集合
            String itemNameTemp[] = atsPlanItem.getItemName().split(",");//指标名的集合
            String itemValueTemp[] = atsPlanItem.getItemValue().split(",");//指标值的集合
            for (int i = 0; i < itemIdArryTemp.length; i++) {
                Integer itemId = Integer.parseInt(itemIdArryTemp[i]);
                String itemName = itemNameTemp[i];
                String itemValue = itemValueTemp[i];
                if(itemId == 0){//条件判断，当itemId==0,则数据库中没有item_id为0的值，就要新增， 反之修改
                    AtsPlanItem atsPlanItems = new AtsPlanItem();
                    atsPlanItems.setItemName(itemName);//设置指标名
                    atsPlanItems.setItemValue(itemValue);//设置指标值
                    String pid = atsPlanYearMore.getPid().toString();
                    atsPlanItems.setPid(pid);//设置Pid
                    atsPlanItems.setPlandate("1");//设置1 就是这一次指标
                    atsPlanItems.setRemark("1");//用备注区分表
                    atsPlanItems.setCreater("sb");//设置创建人
                    atsPlanItems.setCreatTime(new Date());//设置创建时间
                    atsPlanItems.setPname(atsPlanYearMore.getPname());//设置pname
                    atsPlanItems.setIsva(1);//设置是否有效
                    atsPlanItemService.insertSelective(atsPlanItems);
                }else{
                    AtsPlanItem atsPlanItems = new AtsPlanItem();
                    atsPlanItems.setItemId(itemId);
                    atsPlanItems.setItemName(itemName);
                    atsPlanItems.setItemValue(itemValue);
                    atsPlanItems.setPlandate("1");//设置1 就是这一次指标
                    atsPlanItems.setPname(atsPlanYearMore.getPname());//设置pname
                    atsPlanItemService.updateByPrimaryKeySelective(atsPlanItems);
                }
            }
        }
        return temp;
    }

    @Override
    public int updateDelete(String ids) {
        Integer temp = null;
        String pidArryTemp[] = ids.split(",");//pid的集合
        for (int i = 0; i < pidArryTemp.length; i++) {
            Integer pid = Integer.parseInt(pidArryTemp[i]);
            temp = atsPlanYearMoreMapper.updateDelete(pid);
        }
        return temp;
    }

}
